//go:build !arm64 || gccgo || appengine
// +build !arm64 gccgo appengine

package roaring

func union2by2( []uint16,  []uint16,  []uint16) int {
	 := 0
	 := 0
	 := 0
	if 0 == len() {
		 = [:len()]
		copy(, [:])
		return len()
	}
	if 0 == len() {
		 = [:len()]
		copy(, [:])
		return len()
	}
	 := []
	 := []
	 = [:cap()]
	for {
		if  <  {
			[] = 
			++
			++
			if  >= len() {
				copy([:], [:])
				 += len() - 
				break
			}
			 = []
		} else if  ==  {
			[] = 
			++
			++
			++
			if  >= len() {
				copy([:], [:])
				 += len() - 
				break
			}
			if  >= len() {
				copy([:], [:])
				 += len() - 
				break
			}
			 = []
			 = []
		} else { // if (set1[k1]>set2[k2])
			[] = 
			++
			++
			if  >= len() {
				copy([:], [:])
				 += len() - 
				break
			}
			 = []
		}
	}
	return 
}